構建多語言應用程式 Build multilingual-ready apps
Input 涉及使用者輸入的多語言支援
鍵盤輸入:
當 April 切換聊天時,鍵盤會記住她用什麼語言和對方交流。
1 April 住在新加坡,會講英語和中文。她和朋友 Farah 聊天時用英語。她和伴侶聊天時會用中文。
2 使用中文手寫鍵盤時,April 會拉高鍵盤方便書寫,資訊介面會隨之上移。
3 在中文、日文等輸入法中,使用者通常會先輸入拼音或假名,系統會用“標記文字”(marked text)顯示臨時內容,並在選定候選詞後才變為正式文字。
某些應用為了提供“自動補全”功能,會在使用者每次按鍵時修改輸入內容,導致正在輸入的拼音被打斷,體驗非常糟糕。
Spotlight 只會在選定候選詞後修改內容。可以在不中斷使用者輸入的情況下,提供實時建議。永遠不要在標記文字階段修改輸入內容。
搜尋輸入:本地化標準範圍技術
1 Raj 住在印度,會說印地語和英語。他用印地語搜東西時,有時會找不到結果。

因為使用者可能用羅馬化輸入法(如 "indra")輸入,系統預設選擇左邊鼻音化,右邊是正統寫法,其實是一個意思。

蘋果用技術解決了這個問題,讓這些變體能夠正確匹配。localizedStandardRange(本地化標準範圍)遵循本地語言規則的標準搜尋方式。它能識別語言中的大小寫、變音符和拼寫差異。它現在能更好地處理不同語言的拼寫和數字格式。

2 語言的特點以及渲染的問題
- 在印地語和烏爾都語中,字元透過母音符和鼻音點等附加符號與子音結合,形成連體字,而非簡單的字母序列。比如印地語中的單詞"क्षितिज" (kshitij)或"इन्द्र" (Indra),每個字母之間可能有附標和連線。烏爾都語"نستعلیق" (Nastālīq)也是如此。
- 使用者輸入這些語言的時候,每輸入一個字母,前面的字元都會發生變化。
蘋果運用NSAttributedString技術,將以前改變字重的方式改為了用顏色來高亮輸入的內容,而不是切換字型。解決了印地語字元連線被破壞的問題。


3 斜體:有些語言本來就沒有斜體的概念,所以看不出區別。所以,使用斜體要謹慎,不同語言可能看不出差別。
支援斜體:英語(Hello)(拉丁字母)希臘語(Χαίρετε)(希臘字母)西裡爾字母(Сәлем)(俄語、哈薩克語等)
不支援斜體:阿拉伯語(مرحبًا)、印地語(नमस्ते)(天城文)、日語(こんにちは)(假名)、韓語(안녕하세요)、希伯來語(שלום)、泰語(สวัสดี)、中文(你好)

Display文字的正確呈現
Ismat 住在美國,會說英語和烏爾都語。發現大部分應用能正常顯示烏爾都語,但有時文字會破碎得看不清。

蘋果用TextKit 2技術確保所有文字都能正常顯示,文字樣式會根據使用者的語言偏好,自動最佳化不同語言的顯示效果比如行間距。

Localization將內容翻譯和本地化
1 字串的個性化和包容性提升
蘋果研發的自動語法匹配引擎技術可以根據使用者的語言和地區設定,更自然地稱呼他們!
德語、英語、西班牙語、法語、義大利語、葡萄牙語、印地語、韓語




數字格式
世界上有很多不同的數字系統,並不只有阿拉伯數字。一些語言支援多種數字格式,使用者可以在 語言和地區 設定裡選擇自己喜歡的數字格式。數字會自動匹配使用者的語言習慣!

在印度、尼泊爾等國家,本地數字(如 "४४")比阿拉伯數字("44")更常見

圖示也是一樣
textformat 文字格式圖示,過去是 “Aa” 如果使用者的語言是希伯來語,它就變成了 "אא"
signature 簽名符號,英語的簽名字母類似 “Jn”,而阿拉伯語、希伯來語採用更接近本土的書寫風格。
list.number 列表圖示,英語中,數字在左,阿拉伯語中,阿拉伯數字出現在右側
